const Koa=require("koa");
let app=new Koa();


//记录请求到响应的用时时长
app.use(async function(ctx,next){
    await next();
    console.log("请求用时",ctx.payTime);
});


app.use(async function(ctx,next){
    let start=Date.now();
    await next();
    let end=Date.now();

    //计算执行的时间差
    let ms=end-start;

    /* 中间的参数传递
    可以用ctx对象进行数据传递，因为每个koa都有ctx综合对象，该对象记录了当前请求响应过程中的相关信息
    并且ctx对象在所有中间件中均可获取，通过该对象可以完成中间数据共享的传递操作
    注意：使用时候需要注意，避免ctx的内置属性名称 */

    ctx.payTime=ms;

});

app.use(async function(ctx){
    console.log("处理响应结果");
    ctx.body="hello,sssss";
});
app.listen(3000);